package cn.wuxing.mediation.system.mapper;


import cn.wuxing.mediation.common.core.domain.AjaxResult;
import cn.wuxing.mediation.system.domain.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AnalysisMapper {

    /**
     * 区域案件统计
     * @param analysisQueryVo
     * @return
     */
    List<AnalysisVo> getDispute(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 类型统计
     * @param analysisQueryVo
     * @return
     */
    List<AnalysisTypeVo> getDisputeType(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 区域类型统计
     * @param analysisQueryVo
     * @return
     */
    List<DisputeAnalysisVo> disputesAnalysis(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 纠纷主体统计
     * @param analysisQueryVo
     * @return
     */
    List<DisputeSubjectVo> disputeSubject(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 纠纷趋势
     * @param analysisQueryVo
     * @return
     */
    List<DisputeTrendVo> disputeTrend(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 涉事人员年龄
     * @param analysisQueryVo
     * @return
     */
    List<DisputeAgeVo> disputeAge(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 涉事人员性别
     * @param analysisQueryVo
     * @return
     */
    List<DisputeSexVo> disputeSex(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 时间段高发纠纷类型分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeTimeVo> disputeTime(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 时间段高发纠纷区域分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeTimeAreaVo> disputeTimeArea(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     * 时间段高发纠纷纠纷主体分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeTimeSubjectVo> disputeTimeSubject(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     *调解员工作情况分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeMediatorVo> disputeMediatorsAll(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     *调解员工作时长分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeMediatorTimeVo> disputeMediatorsTime(@Param("query") AnalysisQueryVo analysisQueryVo);

    /**
     *调解员工作纠纷类型分析
     * @param analysisQueryVo
     * @return
     */
    List<DisputeMediatorTypeVo> disputeMediatorsType(@Param("query") AnalysisQueryVo analysisQueryVo);

    Long disputeSubjectCount(@Param("query")AnalysisQueryVo analysisQueryVo);

    List<DisputeSubjectVo> disputeSubjectWithApplicant(@Param("query")AnalysisQueryVo analysisQueryVo);

    List<DisputeVo> disputeList(@Param("query") AnalysisQueryVo analysisQueryVo);

    Long disputeListCount(@Param("query") AnalysisQueryVo analysisQueryVo);

    String selectIdCardByApplicantId(@Param("applicantId") Long applicantId);

    List<DisputeAgeVo> disputeAgeWithApplicant(@Param("query") AnalysisQueryVo analysisQueryVo);

    Long disputeAgeCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeSexVo> disputeSexWithApplicant(@Param("query") AnalysisQueryVo areaRole);

    Long disputeSexCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeTimeSubjectVo> disputeTimeSubjectWithApplicant(@Param("query") AnalysisQueryVo areaRole);

    Long disputeTimeSubjectCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeSubjectVo> disputeSubjectWithOrganize(@Param("query") AnalysisQueryVo areaRole);

    Long disputeSubjectWithOrganizeCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeAgeVo> disputeAgeWithOrganize(@Param("query") AnalysisQueryVo areaRole);

    Long disputeAgeOrganizeCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeSexVo> disputeSexWithOrganize(@Param("query") AnalysisQueryVo areaRole);

    Long disputeSexOrganizeCount(@Param("query") AnalysisQueryVo areaRole);

    List<DisputeTimeSubjectVo> disputeTimeSubjectWithOrganize(@Param("query") AnalysisQueryVo areaRole);

    Long disputeTimeSubjectOrganizeCount(@Param("query") AnalysisQueryVo areaRole);
}
